<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * YJJ_Controller Class 后台入口
 *
 * @package core
 * @author  jay
 */
class YJJ_Controller extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        $role_id = intval($this->input->get('role_id')) == 0 ? 1 : intval($this->input->get('role_id')) ;//组id,不传默认为超级管理员
        $path = 'admin';//默认后台名称，这个与数据库表node顶级节点有关
        $model = $this->uri->segment(2);//这里为什么是2,是由于/admin/model/action，model是属于第二位
        $action = $this->uri->segment(3);//这里为什么是3,是由于/admin/model/action，model是属于第三位
        if(empty($model) OR empty($action))
        {
            die('模块或者方法不存在');
        }
        $this->load->database();//加载数据库类，可在配置里面默认加载
        $access_arr = array();
        if($role_id == 1)
        {
            $access_arr = $this->db->get('node')->result_array();//超级管理员获取所有权限节点
        }
        else
        {
            //根据不同组来获取节点
            $access_arr = $this->db->select('node.*')->where(array('role.id'=>$role_id,'role.status'=>1))->join('access','role.id = access.role_id','left')->join('node','access.node_id = node.id and access.pid = node.pid')->get('role')->result_array();
        }
        if(empty($access_arr))
        {
            die('你没有权限');
        }
        $number = 0;
        foreach($access_arr as $key=>$val)
        {
            //后台入口权限
            if ($val['model'] === $path && $val['action'] === $path && intval($val['level']) === 1 ) 
            {
                $number ++;
            }
            //model权限
            if ($val['model'] === $model && $val['action'] === $model && intval($val['level']) === 2)   
                $number ++;
            //action权限
            if ($val['model'] === $model && $val['action'] === $action && intval($val['level']) === 3)  
                $number ++;
        }
        if($number !== 3)
        {
            die('你没有权限等级不够');
        }
    }
}
